package com.sms.gateway.config;

import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;

@Configuration
public class AuthFilterConfig {
    // 权限认证全局过滤器（优先于业务过滤器执行）
    @Bean
    @Order(-200) // 优先级高于日志过滤器
    public GlobalFilter authFilter() {
        return (exchange, chain) -> {

            return  chain.filter(exchange);
            /*// 1. 从请求头中获取令牌（示例：Authorization: Bearer <token>）
            String token = exchange.getRequest().getHeaders().getFirst("Authorization");

            // 2. 验证令牌（实际场景需调用认证服务或解析JWT）
            boolean isAuthenticated = validateToken(token);
            if (!isAuthenticated) {
                // 认证失败：返回401 Unauthorized
                exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
                return exchange.getResponse().setComplete();
            }

            // 3. 认证通过：继续执行后续过滤器
            return chain.filter(exchange);*/
        };
    }

    // 令牌验证逻辑（示例）
    private boolean validateToken(String token) {
        // 实际场景：
        // - 检查token是否为空
        // - 解析JWT（验证签名、过期时间等）
        // - 调用认证服务验证token有效性
        return token != null && token.startsWith("Bearer "); // 简化判断
    }
}
